home *** CD-ROM | disk | FTP | other *** search
/ Aminet 21 / Aminet 21 (1997)(GTI - Schatztruhe)[!][Oct 1997].iso / Aminet / gfx / misc / PicSort.lha / PicSort / PicSort.rexx < prev    next >
OS/2 REXX Batch file  |  1997-08-14  |  23KB  |  789 lines

  1. /*************************************************************************/
  2. /* $VER: PicSort.rexx 1.21 (12.08.97)                                     */
  3. /* Script to sort pictures into several directories                      */
  4. /* Usage: rx PicSort                                                     */
  5. /*************************************************************************/
  6.  
  7. dummy = '"'||Pragma("D")
  8. if right(dummy,1)~=":" THEN dummy = dummy || '/'
  9.  
  10.  
  11. IF ~(Exists("Libs:reqtools.library")&Exists("Libs:rexxreqtools.library")) THEN
  12.       ADDRESS COMMAND "ASSIGN LIBS: "||dummy||'Libs" ADD'
  13. IF ~Exists("C:VAREXX") THEN ADDRESS COMMAND "ASSIGN C: "||dummy||'bin" ADD'
  14.  
  15. gui_file = dummy || 'GUI/PicSort.GUI"'
  16. viewer = 'sys:Utilities/FastView %s '
  17. thump = 0
  18. thumpcom = ""
  19.  
  20. path1 = ""
  21. path2 = ""
  22. path3 = ""
  23. path4 = ""
  24. path5 = ""
  25. path6 = ""
  26. path7 = ""
  27. path8 = ""
  28. path9 = ""
  29. path10 = ""
  30. path11 = ""
  31. path12 = ""
  32. path13 = ""
  33. path14 = ""
  34. path15 = ""
  35. path16 = ""
  36. path17 = ""
  37. path18 = ""
  38. path19 = ""
  39. path20 = ""
  40.  
  41. button1 = ""
  42. button2 = ""
  43. button3 = ""
  44. button4 = ""
  45. button5 = ""
  46. button6 = ""
  47. button7 = ""
  48. button8 = ""
  49. button9 = ""
  50. button10 = ""
  51. button11 = ""
  52. button12 = ""
  53. button13 = ""
  54. button14 = ""
  55. button15 = ""
  56. button16 = ""
  57. button17 = ""
  58. button18 = ""
  59. button19 = ""
  60. button20 = ""
  61.  
  62.  
  63. result = ""
  64.  
  65. IF EXISTS("libs:rexxsupport.library") THEN DO
  66.     IF ~SHOW("L","rexxsupport.library") THEN
  67.         IF ~ADDLIB("rexxsupport.library",0,-30,0) THEN EXIT
  68. END
  69. ELSE EXIT
  70.  
  71. IF EXISTS("libs:rexxreqtools.library") THEN DO
  72.     IF ~SHOW("L","rexxreqtools.library") THEN
  73.         IF ~ADDLIB("rexxreqtools.library",0,-30) THEN EXIT
  74. END
  75. ELSE EXIT
  76.  
  77. OPTIONS RESULTS
  78. OPTIONS FAILAT 11
  79.  
  80. SIGNAL ON SYNTAX
  81. SIGNAL ON FAILURE 
  82.  
  83. /* Check Varexx is loaded if not load it */
  84.  
  85. IF SHOW( 'p', 'VAREXX' ) ~= 1 THEN DO
  86.     ADDRESS COMMAND "run >NIL: varexx"
  87.     ADDRESS COMMAND "WaitForPort VAREXX"
  88. END
  89. ADDRESS VAREXX
  90.  
  91. portname = "PICPORT"
  92. portcount = 0
  93.  
  94. do until show("P",portname||portcount)=0
  95.   portcount = portcount + 1
  96. end
  97.  
  98. portname = portname || portcount
  99. say portname
  100.  
  101. IF OPENPORT(portname) = 0 THEN DO
  102.     CALL rtezrequest "Could not open a port.",, "Varexx Error"
  103.     EXIT
  104. END
  105.  
  106.   'load ' gui_file portname
  107.  
  108. vhost = RESULT
  109. ADDRESS VALUE vhost
  110.  
  111. show
  112.  
  113. /**************************************************************************/
  114. /* Load Config if any exists                                              */
  115. /**************************************************************************/
  116.   config_file = "picsort.cfg"
  117.  
  118.   if exists(config_file) THEN DO
  119.       OPEN(config,config_file,"READ")
  120.         test = ReadLn(config)
  121.         IF test = "PicSort_CONFIG12" THEN DO
  122.  
  123.           button1 = ReadLn(config)
  124.           path1 = ReadLn(config)
  125.           button2 = ReadLn(config)
  126.           path2 = ReadLn(config)
  127.           button3 = ReadLn(config)
  128.           path3 = ReadLn(config)
  129.           button4 = ReadLn(config)
  130.           path4 = ReadLn(config)
  131.           button5 = ReadLn(config)
  132.           path5 = ReadLn(config)
  133.           button6 = ReadLn(config)
  134.           path6 = ReadLn(config)
  135.           button7 = ReadLn(config)
  136.           path7 = ReadLn(config)
  137.           button8 = ReadLn(config)
  138.           path8 = ReadLn(config)
  139.           button9 = ReadLn(config)
  140.           path9 = ReadLn(config)
  141.           button10 = ReadLn(config)
  142.           path10 = ReadLn(config)
  143.           button11 = ReadLn(config)
  144.           path11 = ReadLn(config)
  145.           button12 = ReadLn(config)
  146.           path12 = ReadLn(config)
  147.           button13 = ReadLn(config)
  148.           path13 = ReadLn(config)
  149.           button14 = ReadLn(config)
  150.           path14 = ReadLn(config)
  151.           button15 = ReadLn(config)
  152.           path15 = ReadLn(config)
  153.           button16 = ReadLn(config)
  154.           path16 = ReadLn(config)
  155.           button17 = ReadLn(config)
  156.           path17 = ReadLn(config)
  157.           button18 = ReadLn(config)
  158.           path18 = ReadLn(config)
  159.           button19 = ReadLn(config)
  160.           path19 = ReadLn(config)
  161.           button20 = ReadLn(config)
  162.           path20 = ReadLn(config)
  163.           viewer = ReadLn(config)
  164.           thump = ReadLn(config)
  165.           thumpcom = ReadLn(config)
  166.           thumpsuf = ReadLn(config)
  167.         END
  168.         else dummy=rtezrequest("That's no config file","Okay","Error:","",dummy)
  169.       CLOSE(config)
  170.   END
  171.   else DO
  172.    dummy=rtezrequest("No config loaded","Okay","Error:","",dummy)
  173.   END
  174.  
  175.  
  176. /**************************************************************************/
  177. /* MAIN LOOP -- Check for GUI events                                      */
  178. /**************************************************************************/
  179.  
  180. if ~exists("ENVARC:PicSort.mrk") THEN DO
  181.     dummy=rtezrequest("If anything does not work:"||'0A'x||"Please check the prefs"||'0A'x||"AND READ THE DOCS","So I do","WARNING:","",dummy)
  182.     dummy = Open(file,"ENVARC:PicSort.mrk","W")
  183.        dummy = WriteLn(file,"DONE")
  184.     dummy = Close(file)
  185. end
  186.  
  187. DO FOREVER
  188.     CALL WAITPKT(portname)
  189.     packet = GETPKT(portname)
  190.     IF packet ~= '00000000'x THEN DO
  191.         class = GETARG(packet)
  192.         event = SUBWORD(class,1,1)
  193.         parameter = SUBWORD(class,2)
  194.         if event = "CLOSEWINDOW" THEN LEAVE
  195.         if event = "QUIT" THEN LEAVE
  196.         if event = "CONFIG" THEN config()
  197.         if event = "SORT" THEN sort()
  198.     END
  199. END
  200.  
  201.     'hide unload'    
  202.  
  203.     CALL CLOSEPORT( portname )
  204. EXIT
  205.  
  206. /*
  207. ** Subroutines
  208. */
  209.  
  210. config:
  211.   BUSY SET
  212.   SPAWN portname
  213.  
  214.   oldadr = RESULT
  215.  
  216.   ADDRESS value oldadr
  217.  
  218.   'show' "PicSort_CONFIG"
  219.   show_config()
  220.  
  221.   DO FOREVER
  222.       CALL WAITPKT(portname)
  223.       packet = GETPKT(portname)
  224.       IF packet ~= '00000000'x THEN DO
  225.           class = GETARG(packet)
  226.           event = SUBWORD(class,1,1)
  227.           parameter = SUBWORD(class,2)
  228.           if event = "CLOSEWINDOW" THEN LEAVE
  229.           if event = "BUTTON1" THEN DO
  230.               button1 = parameter
  231.               path1 = getdir(path1)
  232.           END
  233.           if event = "BUTTON2" THEN DO
  234.               button2 = parameter
  235.               path2 = getdir(path2)
  236.           END
  237.           if event = "BUTTON3" THEN DO
  238.               button3 = parameter
  239.               path3 = getdir(path3)
  240.           END
  241.           if event = "BUTTON4" THEN DO
  242.               button4 = parameter
  243.               path4 = getdir(path4)
  244.           END
  245.           if event = "BUTTON5" THEN DO
  246.               button5 = parameter
  247.               path5 = getdir(path5)
  248.           END
  249.           if event = "BUTTON6" THEN DO
  250.               button6 = parameter
  251.               path6 = getdir(path6)
  252.           END
  253.           if event = "BUTTON7" THEN DO
  254.               button7 = parameter
  255.               path7 = getdir(path7)
  256.           END
  257.           if event = "BUTTON8" THEN DO
  258.               button8 = parameter
  259.               path8 = getdir(path8)
  260.           END
  261.           if event = "BUTTON9" THEN DO
  262.               button9 = parameter
  263.               path9 = getdir(path9)
  264.           END
  265.           if event = "BUTTON10" THEN DO
  266.               button10 = parameter
  267.               path10 = getdir(path10)
  268.           END
  269.           if event = "GET1" THEN path1 = getdir(path1)
  270.           if event = "GET2" THEN path2 = getdir(path2)
  271.           if event = "GET3" THEN path3 = getdir(path3)
  272.           if event = "GET4" THEN path4 = getdir(path4)
  273.           if event = "GET5" THEN path5 = getdir(path5)
  274.           if event = "GET6" THEN path6 = getdir(path6)
  275.           if event = "GET7" THEN path7 = getdir(path7)
  276.           if event = "GET8" THEN path8 = getdir(path8)
  277.           if event = "GET9" THEN path9 = getdir(path9)
  278.           if event = "GET10" THEN path10 = getdir(path10)
  279.           if event = "VIEWER" THEN viewer = parameter
  280.           if event = "OKAY" THEN LEAVE
  281.           if event = "SAVE" THEN save_config()
  282.           if event = "LOAD" THEN load_config()
  283.           if event = "BUTTONS2" THEN buttons2()
  284.           say event
  285.           show_config()
  286.       END
  287.   END
  288.  
  289.   'hide'
  290.   ADDRESS VALUE vhost
  291.   BUSY
  292. RETURN 0
  293.  
  294. buttons2:
  295.   BUSY SET
  296.   SPAWN portname
  297.   ADDRESS value RESULT
  298.  
  299.   'show' "PicSort_CONFIG2"
  300.   show_config2()
  301.  
  302.   DO FOREVER
  303.       CALL WAITPKT(portname)
  304.       packet = GETPKT(portname)
  305.       IF packet ~= '00000000'x THEN DO
  306.           class = GETARG(packet)
  307.           event = SUBWORD(class,1,1)
  308.           parameter = SUBWORD(class,2)
  309.           if event = "CLOSEWINDOW" THEN LEAVE
  310.           if event = "BUTTON11" THEN DO
  311.               button11 = parameter
  312.               path11 = getdir(path11)
  313.           END
  314.           if event = "BUTTON12" THEN DO
  315.               button12 = parameter
  316.               path12 = getdir(path12)
  317.           END
  318.           if event = "BUTTON13" THEN DO
  319.               button13 = parameter
  320.               path13 = getdir(path13)
  321.           END
  322.           if event = "BUTTON14" THEN DO
  323.               button14 = parameter
  324.               path14 = getdir(path14)
  325.           END
  326.           if event = "BUTTON15" THEN DO
  327.               button15 = parameter
  328.               path15 = getdir(path15)
  329.           END
  330.           if event = "BUTTON16" THEN DO
  331.               button16 = parameter
  332.               path16 = getdir(path16)
  333.           END
  334.           if event = "BUTTON17" THEN DO
  335.               button17 = parameter
  336.               path17 = getdir(path17)
  337.           END
  338.           if event = "BUTTON18" THEN DO
  339.               button18 = parameter
  340.               path18 = getdir(path18)
  341.           END
  342.           if event = "BUTTON19" THEN DO
  343.               button19 = parameter
  344.               path19 = getdir(path19)
  345.           END
  346.           if event = "BUTTON20" THEN DO
  347.               button20 = parameter
  348.               path20 = getdir(path20)
  349.           END
  350.             say event parameter
  351.           if event = "THUMBNAILS" then thump=parameter
  352.           if event = "COMMAND" then thumpcom = parameter
  353.           if event = "SUFFIX" then thumpsuf = parameter
  354.           if event = "GET11" THEN path11 = getdir(path11)
  355.           if event = "GET12" THEN path12 = getdir(path12)
  356.           if event = "GET13" THEN path13 = getdir(path13)
  357.           if event = "GET14" THEN path14 = getdir(path14)
  358.           if event = "GET15" THEN path15 = getdir(path15)
  359.           if event = "GET16" THEN path16 = getdir(path16)
  360.           if event = "GET17" THEN path17 = getdir(path17)
  361.           if event = "GET18" THEN path18 = getdir(path18)
  362.           if event = "GET19" THEN path19 = getdir(path19)
  363.           if event = "GET20" THEN path20 = getdir(path20)
  364.           if event = "OKAY" THEN LEAVE
  365.           show_config2()
  366.       END
  367.   END
  368.  
  369.   'hide'
  370.   ADDRESS VALUE oldadr
  371.   BUSY
  372. RETURN 0
  373.  
  374. load_config:
  375.   call rtfreefilebuffer()
  376.   drop config_file result
  377.   tag = "rtfi_flags = freqf_patgad rtfi_matchpat = #?.cfg"
  378.   config_file = rtfilerequest("","picsort.cfg","Load Configuration","Load",tag,result)
  379.   if config_file ~= "" THEN DO
  380.       OPEN(config,config_file,"READ")
  381.         test = ReadLn(config)
  382.         IF test = "PicSort_CONFIG12" THEN DO
  383.           button1 = ReadLn(config)
  384.           path1 = ReadLn(config)
  385.           button2 = ReadLn(config)
  386.           path2 = ReadLn(config)
  387.           button3 = ReadLn(config)
  388.           path3 = ReadLn(config)
  389.           button4 = ReadLn(config)
  390.           path4 = ReadLn(config)
  391.           button5 = ReadLn(config)
  392.           path5 = ReadLn(config)
  393.           button6 = ReadLn(config)
  394.           path6 = ReadLn(config)
  395.           button7 = ReadLn(config)
  396.           path7 = ReadLn(config)
  397.           button8 = ReadLn(config)
  398.           path8 = ReadLn(config)
  399.           button9 = ReadLn(config)
  400.           path9 = ReadLn(config)
  401.           button10 = ReadLn(config)
  402.           path10 = ReadLn(config)
  403.           button11 = ReadLn(config)
  404.           path11 = ReadLn(config)
  405.           button12 = ReadLn(config)
  406.           path12 = ReadLn(config)
  407.           button13 = ReadLn(config)
  408.           path13 = ReadLn(config)
  409.           button14 = ReadLn(config)
  410.           path14 = ReadLn(config)
  411.           button15 = ReadLn(config)
  412.           path15 = ReadLn(config)
  413.           button16 = ReadLn(config)
  414.           path16 = ReadLn(config)
  415.           button17 = ReadLn(config)
  416.           path17 = ReadLn(config)
  417.           button18 = ReadLn(config)
  418.           path18 = ReadLn(config)
  419.           button19 = ReadLn(config)
  420.           path19 = ReadLn(config)
  421.           button20 = ReadLn(config)
  422.           path20 = ReadLn(config)
  423.           viewer = ReadLn(config)
  424.           thump = ReadLn(config)
  425.           thumpcom = ReadLn(config)
  426.           thumpsuf = ReadLn(config)
  427.         END
  428.         else dummy=rtezrequest("That's no config file","Okay","Error:","",dummy)
  429.       CLOSE(config)
  430.   END
  431.  
  432. RETURN 0
  433.  
  434. save_config:
  435.   call rtfreefilebuffer()
  436.   drop config_file result
  437.   tag = "rtfi_flags = freqf_patgad rtfi_matchpat = #?.cfg"
  438.   config_file = rtfilerequest("","picsort.cfg","Save Configuration","Save",tag,result)
  439.   if config_file ~= "" THEN DO
  440.       OPEN(config,config_file,"WRITE")
  441.         WriteLn(config,"PicSort_CONFIG12")
  442.         WriteLn(config,button1)
  443.         WriteLn(config,path1)
  444.         WriteLn(config,button2)
  445.         WriteLn(config,path2)
  446.         WriteLn(config,button3)
  447.         WriteLn(config,path3)
  448.         WriteLn(config,button4)
  449.         WriteLn(config,path4)
  450.         WriteLn(config,button5)
  451.         WriteLn(config,path5)
  452.         WriteLn(config,button6)
  453.         WriteLn(config,path6)
  454.         WriteLn(config,button7)
  455.         WriteLn(config,path7)
  456.         WriteLn(config,button8)
  457.         WriteLn(config,path8)
  458.         WriteLn(config,button9)
  459.         WriteLn(config,path9)
  460.         WriteLn(config,button10)
  461.         WriteLn(config,path10)
  462.         WriteLn(config,button11)
  463.         WriteLn(config,path11)
  464.         WriteLn(config,button12)
  465.         WriteLn(config,path12)
  466.         WriteLn(config,button13)
  467.         WriteLn(config,path13)
  468.         WriteLn(config,button14)
  469.         WriteLn(config,path14)
  470.         WriteLn(config,button15)
  471.         WriteLn(config,path15)
  472.         WriteLn(config,button16)
  473.         WriteLn(config,path16)
  474.         WriteLn(config,button17)
  475.         WriteLn(config,path17)
  476.         WriteLn(config,button18)
  477.         WriteLn(config,path18)
  478.         WriteLn(config,button19)
  479.         WriteLn(config,path19)
  480.         WriteLn(config,button20)
  481.         WriteLn(config,path20)
  482.         WriteLn(config,viewer)
  483.         WriteLn(config,thump)
  484.         WriteLn(config,thumpcom)
  485.         WriteLn(config,thumpsuf)
  486.       Close(config)
  487.   END
  488.  
  489. RETURN 0
  490.  
  491. show_config:
  492.   Settext "BUTTON1" button1
  493.   Settext "DEST1" path1
  494.   Settext "BUTTON2" button2
  495.   Settext "DEST2" path2
  496.   Settext "BUTTON3" button3
  497.   Settext "DEST3" path3
  498.   Settext "BUTTON4" button4
  499.   Settext "DEST4" path4
  500.   Settext "BUTTON5" button5
  501.   Settext "DEST5" path5
  502.   Settext "BUTTON6" button6
  503.   Settext "DEST6" path6
  504.   Settext "BUTTON7" button7
  505.   Settext "DEST7" path7
  506.   Settext "BUTTON8" button8
  507.   Settext "DEST8" path8
  508.   Settext "BUTTON9" button9
  509.   Settext "DEST9" path9
  510.   Settext "BUTTON10" button10
  511.   Settext "DEST10" path10
  512.   Settext "VIEWER" viewer
  513. RETURN 0
  514.  
  515. show_config2:
  516.   Settext "BUTTON11" button11
  517.   Settext "DEST11" path11
  518.   Settext "BUTTON12" button12
  519.   Settext "DEST12" path12
  520.   Settext "BUTTON13" button13
  521.   Settext "DEST13" path13
  522.   Settext "BUTTON14" button14
  523.   Settext "DEST14" path14
  524.   Settext "BUTTON15" button15
  525.   Settext "DEST15" path15
  526.   Settext "BUTTON16" button16
  527.   Settext "DEST16" path16
  528.   Settext "BUTTON17" button17
  529.   Settext "DEST17" path17
  530.   Settext "BUTTON18" button18
  531.   Settext "DEST18" path18
  532.   Settext "BUTTON19" button19
  533.   Settext "DEST19" path19
  534.   Settext "BUTTON20" button20
  535.   Settext "DEST20" path20
  536.   Settext "COMMAND" thumpcom
  537.   Settext "SUFFIX" thumpsuf
  538.   if thump = TRUE then do
  539.       setcheck "THUMBNAILS" check
  540.       set "COMMAND" enable
  541.       set "SUFFIX" enable
  542.       end
  543.   if thump = FALSE then do
  544.       setcheck "THUMBNAILS"
  545.       set "COMMAND" disable
  546.       set "SUFFIX" disable
  547.       end
  548. RETURN 0
  549.  
  550. sort:
  551.   BUSY SET
  552.   SPAWN portname
  553.   ADDRESS value RESULT
  554.  
  555.   Setlabel "SORT1" button1
  556.   Setlabel "SORT2" button2
  557.   Setlabel "SORT3" button3
  558.   Setlabel "SORT4" button4
  559.   Setlabel "SORT5" button5
  560.   Setlabel "SORT6" button6
  561.   Setlabel "SORT7" button7
  562.   Setlabel "SORT8" button8
  563.   Setlabel "SORT9" button9
  564.   Setlabel "SORT10" button10
  565.   Setlabel "SORT11" button11
  566.   Setlabel "SORT12" button12
  567.   Setlabel "SORT13" button13
  568.   Setlabel "SORT14" button14
  569.   Setlabel "SORT15" button15
  570.   Setlabel "SORT16" button16
  571.   Setlabel "SORT17" button17
  572.   Setlabel "SORT18" button18
  573.   Setlabel "SORT19" button19
  574.   Setlabel "SORT20" button20
  575.  
  576.   'show' "PicSort_SORT"
  577.  
  578.   if path1="" THEN SET "SORT1" DISABLE
  579.   if path2="" THEN SET "SORT2" DISABLE
  580.   IF path3="" THEN SET "SORT3" DISABLE
  581.   if path4="" THEN SET "SORT4" DISABLE
  582.   if path5="" THEN SET "SORT5" DISABLE
  583.   IF path6="" THEN SET "SORT6" DISABLE
  584.   IF path7="" THEN SET "SORT7" DISABLE
  585.   if path8="" THEN SET "SORT8" DISABLE
  586.   if path9="" THEN SET "SORT9" DISABLE
  587.   IF path10="" THEN SET "SORT10" DISABLE
  588.   if path11="" THEN SET "SORT11" DISABLE
  589.   if path12="" THEN SET "SORT12" DISABLE
  590.   IF path13="" THEN SET "SORT13" DISABLE
  591.   IF path14="" THEN SET "SORT14" DISABLE
  592.   if path15="" THEN SET "SORT15" DISABLE
  593.   if path16="" THEN SET "SORT16" DISABLE
  594.   IF path17="" THEN SET "SORT17" DISABLE
  595.   if path18="" THEN SET "SORT18" DISABLE
  596.   if path19="" THEN SET "SORT19" DISABLE
  597.   IF path20="" THEN SET "SORT20" DISABLE
  598.  
  599.   call rtfreefilebuffer()
  600.   drop result bild
  601.   tag = "rtfi_flags = freqf_multiselect|freqf_patgad rtfi_matchpat = #?"
  602.   result = rtfilerequest("Sys:","","Select Pictures to sort","Sort",tag,bild)
  603.  
  604.   if result ~= "" THEN DO
  605.  
  606.     DO i = 1 to bild.count
  607.  
  608.       bild.i = '"'||bild.i||'"'
  609.  
  610.       viewstring = INSERT( bild.i , viewer , POS("%s", viewer )+1 )
  611.       viewstring = DELSTR( viewstring , POS("%s",viewstring) , 2 )
  612.  
  613.       Settext "FILE" bild.i
  614.       address command viewstring
  615.       if rc ~=0 THEN dummy=rtezrequest("Could not show picture!"||'0A'x||"Please check the prefs.","So I do","WARNING:","",dummy)
  616.  
  617.       DO FOREVER
  618.           busy
  619.           CALL WAITPKT(portname)
  620.           busy set
  621.           packet = GETPKT(portname)
  622.           IF packet ~= '00000000'x THEN DO
  623.               class = GETARG(packet)
  624.               event = SUBWORD(class,1,1)
  625.               parameter = SUBWORD(class,2)
  626.  
  627.               if event = "CLOSEWINDOW" THEN LEAVE
  628.               if event = "RESHOW" THEN do
  629.                   address command viewstring
  630.                   if rc ~=0 THEN dummy=rtezrequest("Could not show picture!"||'0A'x||"Please check the prefs.","So I do","WARNING:","",dummy)
  631.                   end
  632.  
  633.               if class = "KEYBOARD ESC" THEN event = "CLOSEWINDOW"
  634.  
  635.               if pos("SORT",event)~=0 THEN LEAVE
  636.               if event = "DELETE" THEN LEAVE
  637.               if event = "PLUS" THEN LEAVE
  638.               if (event = "KEYBOARD") & (parameter = "DELETE") THEN LEAVE
  639.           END
  640.  
  641.       END
  642.  
  643.       if event = "CLOSEWINDOW" THEN LEAVE
  644.       if (event = "DELETE")|((event = "KEYBOARD")&(parameter = "DELETE")) THEN DO
  645.           ret = rtezrequest("Delete file ?","_Delete|_Cancel","WARNING:",,result)
  646.           if ret = 1 THEN ADDRESS COMMAND "delete "||bild.i
  647.       END
  648.  
  649.       string = ""
  650.  
  651.       if event = ("SORT1")  THEN string = path1
  652.       if event = ("SORT2")  THEN string = path2
  653.       if event = ("SORT3")  THEN string = path3
  654.       if event = ("SORT4")  THEN string = path4
  655.       if event = ("SORT5")  THEN string = path5
  656.       if event = ("SORT6")  THEN string = path6
  657.       if event = ("SORT7")  THEN string = path7
  658.       if event = ("SORT8")  THEN string = path8
  659.       if event = ("SORT9")  THEN string = path9
  660.       if event = ("SORT10") THEN string = path10
  661.       if event = ("SORT11") THEN string = path11
  662.       if event = ("SORT12") THEN string = path12
  663.       if event = ("SORT13") THEN string = path13
  664.       if event = ("SORT14") THEN string = path14
  665.       if event = ("SORT15") THEN string = path15
  666.       if event = ("SORT16") THEN string = path16
  667.       if event = ("SORT17") THEN string = path17
  668.       if event = ("SORT18") THEN string = path18
  669.       if event = ("SORT19") THEN string = path19
  670.       if event = ("SORT20") THEN string = path20
  671.  
  672.       if string ~= "" THEN DO
  673.           copied = 0
  674.  
  675.           cpath = string
  676.           string = bild.i || ' "' || string || '"'
  677.           pdest = left(subword(string,2),length(subword(string,2))-1)||getfilename(bild.i)||'"'
  678.           tdest = left(subword(string,2),length(subword(string,2))-1)||getfilename(bild.i)||thumpsuf||'"'
  679.           overwrite = TRUE
  680.  
  681.           if (exists(compress(pdest,'"'))|exists(compress(tdest,'"'))) then do
  682.               dummy=rtezrequest("A picture or thumbnail"||'0A'x||"with this name already exists!","Replace|Skip","WARNING:","",dummy)
  683.               if dummy = 0 then overwrite = FALSE
  684.           end
  685.  
  686.           if (thump = TRUE)&(overwrite = TRUE) then do
  687.               tsource = bild.i
  688.               tdest = left(subword(string,2),length(subword(string,2))-1)||getfilename(bild.i)||thumpsuf||'"'
  689.  
  690.               tcom = INSERT( tsource , thumpcom , POS("%s", thumpcom )+1 )
  691.               tcom = DELSTR( tcom , POS("%s",tcom) , 2 )
  692.  
  693.               tcom = INSERT( tdest , tcom , POS("%d", tcom )+1 )
  694.               tcom = DELSTR( tcom , POS("%d",tcom) , 2 )
  695.  
  696.               address command tcom
  697.               if rc ~=0 THEN dummy=rtezrequest("Could not generate thumbnail!"||'0A'x||"Please check the prefs.","So I do","WARNING:","",dummy)
  698.  
  699.               end
  700.  
  701.           if overwrite = TRUE THEN DO 
  702.               ADDRESS COMMAND "copy "||string||" CLONE"
  703.               copied = RC
  704.               if copied ~= 0 THEN dummy=rtezrequest("Could not move picture!"||'0A'x||"Please check the prefs.","So I do","WARNING:","",dummy)
  705.               IF copied = 0 THEN ADDRESS COMMAND "delete "||bild.i
  706.           end
  707.  
  708.       END
  709.  
  710.     END
  711.  
  712.   END
  713.  
  714.   'hide'
  715.   ADDRESS VALUE vhost
  716.   BUSY
  717. RETURN 0
  718.  
  719. /*
  720. ** Subprocedures
  721. */
  722.  
  723. getdir:
  724.   Parse Arg olddir
  725.  
  726.   drop dir result
  727.  
  728.   call rtfreefilebuffer()
  729.  
  730.   tag = "rtfi_flags = freqf_nofiles"
  731.   dir = rtfilerequest(olddir,,"Select Directory","Okay",tag,result)
  732.  
  733. RETURN dir
  734.  
  735. GetFileName:
  736.   PARSE ARG OldFilename
  737.  
  738.   FirstChar = LEFT( OldFilename, 1 )
  739.   if (FirstChar = '"') | (FirstChar = '''') THEN
  740.           OldFilename = STRIP( OldFilename, "B", FirstChar )
  741.  
  742.   FNameSepPos = LASTPOS( '/', OldFilename )
  743.   if (FNameSepPos = 0) THEN
  744.           FNameSepPos = LASTPOS( ':', OldFilename )
  745.  
  746.   if (FNameSepPos ~= 0) THEN
  747.           FileOnly = RIGHT( OldFilename, LENGTH( OldFilename ) - FNameSepPos )
  748.   else
  749.           FileOnly = OldFilename
  750.  
  751. RETURN FileOnly
  752.  
  753. GetPath:
  754.   PARSE ARG OldFilename
  755.  
  756.   FirstChar = LEFT( OldFilename, 1 )
  757.   if (FirstChar = '"') | (FirstChar = '''') THEN
  758.           OldFilename = STRIP( OldFilename, "B", FirstChar )
  759.  
  760.   FNameSepPos = LASTPOS( '/', OldFilename )
  761.   if (FNameSepPos = 0) THEN
  762.           FNameSepPos = LASTPOS( ':', OldFilename )
  763.  
  764.   if (FNameSepPos ~= 0) THEN
  765.           PathOnly = LEFT( OldFilename, FNameSepPos )
  766.   else
  767.           PathOnly = ""
  768.  
  769. RETURN PathOnly
  770.  
  771.  
  772. /* Error messages */
  773.  
  774. failure:
  775.     SAY "Error code" rc "-- Line" SIGL
  776.     SAY EXTERNERROR
  777.     'hide unload'
  778.     CALL CLOSEPORT (portname)
  779.  
  780. EXIT
  781.  
  782. syntax:
  783.     SAY "Error" rc  "-- Line" SIGL
  784.     SAY ERRORTEXT( rc )
  785.     'hide unload'
  786.     CALL CLOSEPORT (portname)
  787. EXIT
  788.  
  789.